Method of smooth transition between advertisement stream and main stream

ABSTRACT

A system and method for processing and displaying at least two media content streams, a first content stream and an auxiliary content stream. The system receives, stores, decodes and displays at least two consecutive media content streams. The media content streams include an initial XML which includes a memory allocation datum in relation to the auxiliary content stream. The system utilizes the memory allocation datum to download and store auxiliary media content while the first content is being decoded and displayed.

BACKGROUND OF THE INVENTION

1. Field of the Invention

The present invention relates generally to media streaming systems andmethods, and more specifically to media streaming systems and methodsfor internet protocol media streaming.

2. Discussion of the Related Art

A media stream is a stream of data that is formatted allowing a receiverto begin processing the data before receiving the entire stream. Data ina media stream can be received continuously or non-continuously by astream management module according to the format of the stream, theprocessing of the data and/or the method of transference. The data maybe displayed while new data is being delivered or retrieved from a mediacontent provider.

Media stream receivers typically include memory for storing a portion ofthe media stream prior to decoding and displaying. The rate of downloadof the media stream is generally slower than the rate of decoding anddisplaying, so if no memory is used the decoder (and the resultingdisplayed media) pauses frequently to wait for additional media streamdata to download to the receiver. To minimize the delay, decoding anddisplay of the media stream is paused until the buffer memory hasdownloaded and stored enough of the media stream to allow for continuousor nearly continuous playback.

A media stream can be comprised of at least one sub-stream thattransports a particular type of media content. For example, a multimediastream can include a video type sub-stream and an audio type sub-stream.

While a sub-stream of a media stream can be affected by anothersub-stream of the same media stream, the media stream is independent ofother media streams. That is, media streams do not currently interactwith other media streams.

Commonly, when a media stream is requested by a user from the contentprovider, when the stream is downloaded to the receiver the contentprovider includes information for an auxiliary media stream such as amedia advertisement. The information generally includes a timecode forplaying the auxiliary media stream after a certain time length of therequested media stream has been displayed.

Currently, if the standard media streaming format MPEG-4 is used tostream and display the media stream, the requested media stream isentirely downloaded, decoded and displayed before the receiver initiatesdownloading of the auxiliary media stream. The only playback informationtransmitted with the MPEG-4 stream is the stream location and order ofplayback. Thus, can a delay in playback can result while the viewerwaits for the auxiliary stream to be buffered.

SUMMARY OF THE INVENTION

The present invention advantageously addresses the needs above as wellas other needs by providing systems and methods for transitioningbetween two media streams.

In one embodiment, the invention can be characterized as a method forsmooth transition between at least two media streams, comprising:transmitting by a streaming media receiver of a first content request toa content provider, requesting a first media stream, the streaming mediareceiver comprising a stream management module, a memory, a decodermodule and a display module; receiving by the streaming media receiverof an XML file, the XML file comprising XML, including a first locationfor the first media stream, at least one auxiliary location for at leastone auxiliary media stream, at least one timecode for determining astart display time for the at least one auxiliary media stream, a memoryallocation datum; receiving by the streaming media receiver of the firstmedia stream; storing of the first media stream in the memory;buffering, decoding, and displaying of the first media stream by thestreaming media receiver; repetitively determining by the streammanagement module of an available memory quantity equal to a quantity ofthe memory not used for storing the first media stream, after the firstmedia stream has been entirely stored in the memory; repetitivelycomparing the memory allocation datum to the available memory quantity;receiving of the at least one auxiliary media stream by the streamingmedia receiver when the available memory quantity is equal to or greaterthan the memory allocation datum; storing of the at least one auxiliarymedia stream in the memory; and decoding and displaying of the at leastone auxiliary media stream when the at least one timecode is reached.

In another embodiment, the invention can be characterized as a methodfor smooth transition between at least two media streams, comprising:receiving of a first streaming media content request by a contentprovider, requesting a first media stream, the content providerincluding at least one module configured for receiving and processingthe first streaming media content request; transmitting by the contentprovider of an XML file to a streaming media receiver, the XML filecomprising XML, including a first location for the first media stream,at least one auxiliary location for at least one auxiliary media stream,at least one timecode for determining a start display time for the atleast one auxiliary media stream, and a memory allocation datum.

In a further embodiment, the invention can be characterized as a systemfor smooth transition between at least two media streams, comprising: afirst media stream; at least one auxiliary media stream; a streamingmedia receiver, the streaming media receiver comprising a streammanagement module, a memory, a decoder module, and a display module,whereby the streaming media receiver receives, stores, decodes anddisplays the first media stream and the at least one auxiliary mediastream; and an XML file comprising XML, whereby the XML file includes afirst location of the first media stream, a second location of the atleast one auxiliary media stream, at least one timecode for a displaystart time of the at least one auxiliary media stream, and a memoryallocation datum.

In a further embodiment, the invention can be characterized as a methodfor making a system for smooth transition between at least two mediastreams, comprising: providing a first media stream at a first location;providing at least one auxiliary media stream at an auxiliary location;providing a content provider configured to transmit an XML file;providing a streaming media receiver, the streaming media receivercomprising a stream management module, a memory, a decoder module, and adisplay module, whereby the streaming media receiver receives, stores,decodes and displays the first media stream and the at least oneauxiliary media stream; and providing the XML file comprising XML,whereby the XML file includes the first location of the first mediastream, the auxiliary location of the at least one auxiliary mediastream, at least one timecode for a display start time of the at leastone auxiliary media stream, and a memory allocation datum.

In a further embodiment, the invention can be characterized as a systemfor smooth transition between at least two media streams, comprising:means for transmitting by a streaming media receiver of a first contentrequest to a content provider, requesting a first media stream, thestreaming media receiver comprising a stream management module, amemory, a decoder module and a display module; means for receiving bythe streaming media receiver of an XML file, the XML file comprisingXML, including a first location for the first media stream, at least oneauxiliary location for at least one auxiliary media stream, at least onetimecode for determining a start display time for the at least oneauxiliary media stream, a memory allocation datum; means for receivingby the streaming media receiver of the first media stream; means forstoring of the first media stream in the memory; means for buffering,decoding, and displaying of the first media stream by the streamingmedia receiver; means for repetitively determining by the streammanagement module of an available memory quantity equal to a quantity ofthe memory not used for storing the first media stream, after the firstmedia stream has been entirely stored in the memory; means forrepetitively comparing the memory allocation datum to the availablememory quantity; means for receiving of the at least one auxiliary mediastream by the streaming media receiver when the available memoryquantity is equal to or greater than the memory allocation datum; meansfor storing of the at least one auxiliary media stream in the memory;and means for decoding and displaying of the at least one auxiliarymedia stream when the at least one timecode is reached.

In a further embodiment, the invention can be characterized as a systemfor smooth transition between at least two media streams, comprising:means for receiving of a first streaming media content request by acontent provider, the content provider including at least one moduleconfigured for receiving and processing the first streaming mediacontent request; means for transmitting by the content provider of anXML file to a streaming media receiver, the XML file comprising XML,including a first location for a first media stream, at least oneauxiliary location for at least one auxiliary media stream, at least onetimecode for determining a start display time for the at least oneauxiliary media stream, and a memory allocation datum.

BRIEF DESCRIPTION OF THE DRAWINGS

The above and other aspects, features and advantages of severalembodiments of the present invention will be more apparent from thefollowing more particular description thereof, presented in conjunctionwith the following drawings.

FIG. 1 is a block diagram of an Internet protocol streaming media systemaccording to an embodiment of the present invention.

FIG. 2 is a flow diagram showing a method for smooth transitioningbetween two media content streams according to an embodiment of thepresent invention.

FIG. 3 is a line diagram of an embodiment of device communication forthe method for smooth transitioning between two media content streamsaccording to an embodiment of the present invention.

FIG. 4 is a schematic diagram of memory usage and stream playbackaccording to the method for smooth transitioning between two mediacontent streams.

Corresponding reference characters indicate corresponding componentsthroughout the several views of the drawings. Skilled artisans willappreciate that elements in the figures are illustrated for simplicityand clarity and have not necessarily been drawn to scale. For example,the dimensions of some of the elements in the figures may be exaggeratedrelative to other elements to help to improve understanding of variousembodiments of the present invention. Also, common but well-understoodelements that are useful or necessary in a commercially feasibleembodiment are often not depicted in order to facilitate a lessobstructed view of these various embodiments of the present invention.

DETAILED DESCRIPTION

The following description is not to be taken in a limiting sense, but ismade merely for the purpose of describing the general principles ofexemplary embodiments. The scope of the invention should be determinedwith reference to the claims.

Reference throughout this specification to “one embodiment,” “anembodiment,” or similar language means that a particular feature,structure, or characteristic described in connection with the embodimentis included in at least one embodiment of the present invention. Thus,appearances of the phrases “in one embodiment,” “in an embodiment,” andsimilar language throughout this specification may, but do notnecessarily, all refer to the same embodiment.

Furthermore, the described features, structures, or characteristics ofthe invention may be combined in any suitable manner in one or moreembodiments. In the following description, numerous specific details areprovided, such as examples of programming, software modules, userselections, network transactions, database queries, database structures,hardware modules, hardware circuits, hardware chips, etc., to provide athorough understanding of embodiments of the invention. One skilled inthe relevant art will recognize, however, that the invention can bepracticed without one or more of the specific details, or with othermethods, components, materials, and so forth. In other instances,well-known structures, materials, or operations are not shown ordescribed in detail to avoid obscuring aspects of the invention.

Referring first to FIG. 1, a block diagram is shown illustrating thestructure of an Internet protocol streaming media system 100 accordingto an embodiment of the present invention. Shown are a streaming mediareceiver 102, a memory 104, a stream management module 106, a decodermodule 108, a display module 110, an XML file 112, an internet protocolconnection 114, a first media stream 116, an a second media stream 118.

The streaming media receiver 102 includes the stream management module106, the memory 104, the decoder module 108 and the display module 110.The memory 104, the decoder module 108 and the display module 110 may beincluded in a MPEG decoder hardware module. In the embodiment shown, thestreaming media receiver 102 includes modules capable of receiving,decoding and displaying MPEG-4 media streams as defined by the formalstandard ISO/IEC 14496. The systems and methods shown herein may beapplied to alternate audio and video digital standards. In the oneembodiment, the streaming media receiver 102 modules transfer andreceive data through bus communication, although those skilled in theart will not that other methods of data transfer are available.

The XML file 112 is transmitted to the stream management module 106 bythe internet protocol connection 114 between the XML file 112 locationand the streaming media receiver 102 through a standard http (hypertexttransfer protocol) request or other suitable internet transfer protocol.The internet protocol connection 114 may be a wired connection, such asan ethernet connection, or a wireless connection, such as a wirelessmodem. The XML (Extensible Markup Language) file 112 is transmitted inresponse to a content request 306 by a user (not shown), as shown belowin FIG. 2. The XML file 112 comprises XML, and includes informationabout one or more server internet locations where one or more mediastreams 116, 118 reside, as well as other data as shown below in FIG. 2.The XML file 112 may also comprise an alternate markup languagecompatible with the stream management module 106.

The stream management module 106 includes components as necessary to theoperation of the internet protocol streaming media system 100, includingcomponents for initiating media stream requests, reading and parsing theXML file 112, receiving one or more media streams 116, 118, transferringthe media streams 116, 118 to the MPEG-4 decoder module 108, andmonitoring and regulating the memory 104 and the decoder module 108.

The first media stream 116 is transmitted to the memory 104 through theinternet protocol connection 114. In the embodiment shown, the firstmedia stream 116 is MPEG-4 format. The first stream 116 includes themedia stream as requested by the user.

The second media stream 118 is transmitted to the memory 104 through theinternet protocol connection 114. In the embodiment shown, the secondmedia stream 118 is MPEG-4 format. The second media stream 118 is anauxiliary media stream, for example a media advertisement, to bedisplayed on the internet protocol streaming media system 100 at a timeafter the display start of the first stream 116.

The memory 104 receives the media streams 116, 118 at times as directedby the stream management module 106. In the preferred embodiment, thememory 104 is DRAM (dynamic random-access memory) type memory, but maybe of any type suitable for low-latency storage and retrieval of files.The memory 104 stores the downloaded media stream 116, 118 untildirected by the stream management module 106 to transfer one of themedia streams 116, 118 to the decoder module 108. The media stream 116,118 may be transferred to the decoder module 108 by a direct electricalconnection or a wireless connection.

The decoder module 108 receives the media stream 116, 118 from thememory 104. The decoder module 108 includes components for decoding anddisplaying the media stream on the display module 110. In the embodimentshown, the decoder module 108 includes components for the MPEG-4 format.Components of the MPEG-4 decoder module 108 include a DAI (DMIFApplication Interface), a decoding buffer, an ESI (Elementary StreamInterface), a decoder, a composition memory, and a compositor. Thedecoder module 108 decodes and composites the media stream 116, 118 andtransmits it to the display module 110. The composited media stream 116,118 may be transmitted to the display module 110 by a direct electricalconnection or a wireless connection.

The display module 110 receives the composited media stream 116, 118from the decoder module 108 and displays it on a display screen (notshown), for example, an LCD, plasma, LED or CRT screen. The displaymodule 110 includes components for receiving the composited media stream116, 118 from the decoder module 108 and displaying the media stream116, 118 on the display screen.

Referring again to FIG. 1, the internet protocol streaming media system100 shown is capable of downloading separate media streams 116, 118simultaneously, as shown further below in FIGS. 2-4. When the firstmedia stream 116 (also referred to as Stream 1) is requested by theuser, the XML file 112 is transmitted to the stream management module106 through the internet protocol connection 114. The XML file 112includes at least one XML datum for allocating the memory 104. Thestream management module 106 utilized the XML file 112 data and thememory 104 capacity to dynamically monitor and control the memory 104allocation. During the first stream 116 download, when the streammanagement module 106 determines that sufficient memory 104 capacityexists (see FIG. 4 below), the stream management module 106 initiatesthe download of Stream 2 118 while Stream 116 continues to download.Downloading of the media streams 116, 118 simultaneously reduces delaywhen transitioning from display of the first stream 116 to display ofthe second stream 118, as at least a portion of the second stream 118will already have been downloaded when a second stream start time 316 isreached, and buffer time is decreased or eliminated.

When a portion of the first media stream 116 downloaded and stored onthe memory 104 is transferred to the decoder module 108, the memory 104previously used to store that portion of the first stream 116 is used toreceive and store additional portions of the first media stream 116.

Referring next to FIG. 2, a method for smooth transitioning between twomedia content streams is shown. Shown are a request content step 200, anXML file step 202, a download first stream step 204, a display firststream step 206, an available memory step 208, a memory check decisionpoint step 210, a download second stream step 212, a start time decisionpoint step 214, and a display second stream step 216.

Initially, during the request content step 200 the user (not shown)transmits the content request 306 to the streaming media receiver 102for the first media stream 116 to be displayed on the streaming mediareceiver 102. The stream management module 106 transmits the contentrequest 306 to a location specified for the first stream 116 andaccessible using a standard protocol such as HTTP (Hypertext TransferProtocol) or HTTPS (Hypertext Transfer Protocol Secure). The method thenproceeds to the XML file step 202.

During the XML file step 202, the stream management module 106 receivesthe XML file 112 from an internet location 300 as provided by a contentprovider. The XML file 112 includes locations of the files for the mainfirst stream 116, and also locations for the auxiliary second stream 118to be played at a later time. The XML file 112 also includes anavailable memory datum buffersizeDB 326 and a second stream start timetimecode 324 as shown below in FIG. 3. The method then proceeds to thedownload first stream step 204.

During the download first stream step 204, the memory 104 (as shown inFIG. 1) receives the MPEG-4 first stream 116 sub-streams and stores themin the memory 104 until the time of decoding and displaying. The streammanagement module 106 may include parameters for dynamically determiningthe amount of the first stream 116 to be stored in the memory 104 beforedecoding and displaying will take place. Ideally, the size of the firststream 116 files stored in the memory 104 would be large enough that theremainder of the first stream 116 would be decoded and displayed beforethe second stream start time 316 without exhausting the files stored inthe memory 104. The method then proceeds to the display first streamstep 206.

The display first stream step 206 includes the decoding and display ofthe first stream 116 by the decoder module 108 and the display module110. The method then proceeds to the available memory step 208.

During the available memory step 208, the stream management module 106determines the amount of the memory 104 available, i.e. memory that isnot needed for storing of the first stream 116. For example, the streammanagement module 106 may be configured to check an available memory 436quantity whenever the decoder module 108 consumes first stream 116 filesfrom the memory 104. This typically occurs after the first stream 116media files have been completely downloaded to the memory 104. As thedecoder module 108 receives the files from the memory 104, as there isno more first stream 116 data, the memory 104 is available foradditional data storage. The current amount of memory 104 available isdefined as a memory_available datum. The method then proceeds to thememory check decision point step 210.

The memory check decision point step 210 is used to determine whetherenough memory 104 is available to start downloading the second mediastream 118. The stream management module 106 checks whether thememory_available datum is greater than the buffersizeDB datum 326 asreceived from the XML file 112. If the memory_available datum is lessthan the buffersizeDB datum 326, the method returns to the downloadfirst stream step 204. If the memory_available datum is greater than thebuffersizeDB datum 326, the method proceeds to the download secondstream step 212.

During the download second stream step 212, the memory 104 receives theMPEG-4 second stream 118 sub-streams and stores them in the memory 104until the time of decoding and displaying of the second stream 118. Themethod then proceeds to the start time decision point step 214.

The start time decision point step 214 determines whether the secondstream start time 316 has been reached. If the current time is equal tothe second stream start time 316, the method proceeds to the displaysecond stream step 216. If the second stream start time 316 has not yetbeen reached, the method returns to the download second stream step 212.

During the display second stream step 216, the streaming media receiver102 initiates decoding and displaying of the second stream 118 stored inthe memory 104.

Referring again to FIG. 2, the method shown illustrates on embodiment ofsmooth transition between two media streams: the main first stream 116and the auxiliary second stream 118.

The method uses the initial XML file 112 to include the buffersizeDBdatum 326, which is used to allocate memory to download the auxiliarysecond stream 118 while the first stream 116 is still being decoded anddisplayed.

The buffersize DB datum 326 contains the minimum amount of the memory104 required by the second stream 118 to result in display of the secondstream 118 with a minimum of delay and/or pausing to rebuffer. ThebuffersizeDB datum 326 value may be included in the XML file 112 as astatic value, for instance a value related solely to the size of thesecond stream 118, or the XML file 112 may be dynamically generated by acontent provider with the buffersizeDB datum 326 value depending on thedownload rate between the streaming media receiver 102 and the contentprovider at the time the first stream 116 is requested.

The stream management module 106 continually monitors the memory 104,and checks the available memory 436 (the memory_available datum) againstthe buffersizeDB datum 326. When the available memory datum exceeds thebuffersizeDB datum 326, the streaming media receiver 102 beginsdownloading of the second stream 118 to the memory 104 while the firststream 116 is still being decoded and displayed. The second stream 118is then available for decoding and displaying immediately at the secondstream start time 316, without requiring additional downloading. Thesecond stream 118 then continues to download, decode and display untilthe end of the second stream 118 is reached.

Referring next to FIG. 3, a line diagram of an embodiment of devicecommunication for the internet protocol streaming method shown in FIG. 2is shown. Shown are the internet location 300, the stream managementmodule 106, the memory 104, a decoder/display 302, a timeline 304, thecontent request 306, the XML file 112, a download first stream 308, adecode/display first stream 310, a memory available time 312, a downloadsecond stream 314, the second stream start time 316, a decode/displaysecond stream 318, a first stream internet location 320, a second streaminternet location 322, the timecode 324, and the memory datum(buffersizeDB) 326.

The internet location 300 shown is an off-site internet location 300where data is retrieved from. The internet location 300 may vary, forexample the internet location of the stream targeted by the initialrequest 306 may be a different location from the location of mediastream files.

The stream management module 106 and the memory 104 correspond to thosecomponents as shown in FIG. 1. The decoder/display 302 corresponds tothe combination of the decoder module 108 and the display module 110 asshown in FIG. 1. The components transmit and receive data throughconnections as shown above in FIG. 1.

The timeline 304 is also shown, indicating the passage of time duringwhich the internet protocol streaming media system 100 is used.

Initially, the user requests, through input to the stream managementmodule 106, the first media stream 116, as shown by the content request306 arrow pointing from the stream management module 106 to the remoteInternet location 300. The stream management module 106 includeslocations for content streams accessible using a standard protocol suchas HTTP (Hypertext Transfer Protocol) or HTTPS (Hypertext TransferProtocol Secure).

The stream management module 106 transmits the content request 306 tothe internet location 300 and receives the XML file 112 for the firstmedia stream 116, as shown by the XML file 112 arrow pointing from theremote internet location 300 to the stream management module 106. TheXML file 112 includes the first stream internet location 320, the secondstream internet location 322, at least one timecode 324 indicating starttime for the second stream 118, and the available memory datum 326(buffersizeDB). Those skilled in the art will note that additionalinformation may be included in the XML file 112, for example, internetlocations, timecodes for additional media streams, and content metadata.

After receiving the XML file 112, the stream management module 106 thenretrieves the first media stream 116 from the first stream internetlocation 320 specified in the XML file 112. The first stream 116transfer is indicated by the arrow pointing from the remote internetlocation 300 to the memory 104, and corresponds to the download firststream step 204 shown in FIG. 2. The first stream 116 is thencontinuously decoded and displayed as indicated by the decode/displayfirst stream 310 arrow from the memory 104 to the decoder/display 302,and corresponds to the display first stream step 206 as shown in FIG. 2.

During the decoding and displaying of the first stream 116, the streammanagement module 106 continually monitors the memory 104 as shown inthe available memory step 208 and the memory check decision point step210 shown in FIG. 2. The time when the available memory 436 is greaterthan the buffersizeDB datum 326 is shown on the timeline 304 as thememory available time 312. At the memory available time 312, the streammanagement module 106 starts to download the second stream 118 from thesecond stream internet location 322 specified in the XML file 112. Thesecond stream transfer 314 is indicated by the arrow pointing from theremote internet location 300 to the memory 104, and corresponds to thedownload second stream step 212 shown in FIG. 2. The first stream 116continues to be displayed on the screen and the second stream 118 storedin the memory 104 is not decoded/displayed.

At a time after the available memory time 312, the second stream starttime 316 is reached. The second stream start time 316 is determined bythe timecode 324 included in the XML file 112. At the second streamstart time 316, the stream management module 106 directs thedecoder/display 302 to begin decoding and displaying of the secondstream 118, and the second stream 118 is displayed, as indicated by thedecode/display second stream 318 arrow from the memory 104 to thedecoder/display 302.

Referring next to FIG. 4, a schematic diagram of memory usage and streamplayback is shown. Shown are the timeline 304, a content playbackdiagram 400, a buffer first stream segment 402, a download start time404, a display first stream segment 406, a display first stream starttime 408, a display second stream segment 410, a second stream starttime 412, a display second stream end time 414, a first stream memoryusage graph 416, a first stream memory usage 418, a maximum memory value420, a second stream memory usage graph 422, a second stream memoryusage 424, a first stream download complete time 426, the availablememory time 428, and a second stream download complete time 430.

The timeline 304 is shown as a horizontal axis extending to the right.The origin of the timeline 304 axis indicates the start of downloadingof the first stream 116 (the download start time 404). The top contentplayback diagram 400 is a graphical representation of the contentplayback as displayed by the streaming media receiver 102 (not shown).

The first segment of the content playback diagram 400 is the bufferfirst stream segment 402. The buffer first stream segment 402 extendsfrom the download start time 404 to the display first stream start time408. During the buffer first stream segment 402 the first stream 116 isdownloaded to the memory but display of the first stream 116 has not yetstarted. The display first stream start time 408 is determined by thestream management module 106 as described above.

The next temporal segment of the content playback diagram 400 is thedisplay first stream segment 406. The display first stream segment 406extends from the display first stream start time 408 to the secondstream start time 412. The second stream start time 2 corresponds to thetimecode 324 transmitted with the XML file 112 as described in FIGS.1-3. During the display first stream segment 406, the first media stream116 is displayed on the streaming media receiver 102.

The last segment shown is the display second stream segment 410. Thedisplay second stream segment 410 extends from the second stream starttime 412 to the display second stream end time 414. The display secondstream end time 414 corresponds to the time when the entirety of thesecond stream 118 has been displayed on the streaming media receiver102. During the display second stream segment 410, the second stream 118is displayed on the streaming media receiver 102.

Below and with the timeline 304 parallel to the timeline 304 of thecontent playback diagram 400 detailed above, the first stream memoryusage graph 416 is shown. A first vertical axis 432 of the first streammemory usage graph 416 indicates the amount of the memory 104 used tostore first stream 116 data. The maximum memory value 420 as shown onthe first vertical axis 432 corresponds to the total memory 104 of thestreaming media receiver 102 available for storage of streaming media.

The first stream memory usage 418 corresponds to the memory 104 used tostore the first stream 116 over time. At the download start time 404,the first stream memory usage 418 is zero. During the buffer firststream segment 402, ending at the display first stream start time 408,the first stream memory usage 418 increases until it reaches the maximummemory value 420 at the display first stream start time 408. The firststream memory usage 418 is shown increasing linearly, but the rate ofincrease of the first stream memory usage 418 may also be non-linear.

During a portion of the display first stream segment 406, until thefirst stream download complete time 426, the first stream memory usage418 remains constant at the maximum memory value 420. The first streamdownload complete time 426 corresponds to the time when all of therequired first stream 116 data have been downloaded and stored to thememory 104.

Between the first stream download complete time 426 and the secondstream start time 316, the first stream memory usage 418 decreases fromthe maximum memory value 420 to a value of zero at the second streamstart time 316. As the decoder module 108 continues to decode the firststream 116, while no new content is being downloaded, the first streammemory usage 418 decreases until all of the first stream 116 stored inthe memory 104 has been decoded. The first stream memory usage 418 isshown decreasing linearly, but the rate of decrease of the first streammemory usage 418 may also be non-linear.

Below the first stream memory usage graph 416 and with the timeline 304parallel to the timeline 304 of the content playback diagram 400segments detailed above, the second stream memory usage graph 422 isshown. A second vertical axis 434 of the second stream memory usagegraph 422 indicates the amount of the memory 104 used to store thesecond stream 118 data. The maximum memory value 420 as shown on thesecond vertical axis 434 corresponds to the total memory 104 of thestreaming media receiver 102 available for storage of streaming media.

The value of the second stream memory usage 424 is zero until theavailable memory time 428. The available memory time 428 corresponds tothe time when the difference between the first stream memory usage 418and the maximum memory value 420 (the available memory 436 datum) isequal to the buffersizeDB datum 326 value. As shown above in FIG. 2, atthis time the stream management module 106 directs the streaming mediareceiver 102 to download the second stream 118 to the memory 104. Theusage of the memory 104 by the downloading of the second stream 118 isshown by the second stream memory usage 424 increasing from zero at theavailable memory time 428 to the maximum memory value 420 at the secondstream start time 412. The second stream memory usage 424 is shownincreasing linearly, but the rate of increase of memory usage may alsobe non-linear, depending on the rate of increase of the second streammemory usage 424.

The value of the second stream memory usage 424 stays constant, at themaximum memory value 420, until the second stream download complete time430. The seconds stream download complete time 430 corresponds to thetime when all of the required second stream 118 data have beendownloaded and stored to the memory 104.

Between the second stream download complete time 430 and the displaysecond stream end time 414 the second stream memory usage 424 decreasesfrom the maximum memory value 420 to a value of zero at the Stream 2display end time. As the decoder module 108 continues to decode thesecond stream 118, while no new content is being downloaded, the secondstream memory usage 424 decreases until all of the second stream 118data stored in the memory 104 have been decoded. The second streammemory usage 424 is shown decreasing linearly, but the rate of decreaseof the second stream memory usage 424 may also be non-linear.

The skilled artisan will note that, even though the display is shownending with the display second stream end time 414, additional contentmedia streams may be streamed after the second stream 118, following thesame method.

Many of the functional units described in this specification have beenlabeled as modules, in order to more particularly emphasize theirimplementation independence. For example, a module may be implemented asa hardware circuit comprising custom VLSI circuits or gate arrays,off-the-shelf semiconductors such as logic chips, transistors, or otherdiscrete components. A module may also be implemented in programmablehardware devices such as field programmable gate arrays, programmablearray logic, programmable logic devices or the like.

Modules may also be implemented in software for execution by varioustypes of processors. An identified module of executable code may, forinstance, comprise one or more physical or logical blocks of computerinstructions that may, for instance, be organized as an object,procedure, or function. Nevertheless, the executables of an identifiedmodule need not be physically located together, but may comprisedisparate instructions stored in different locations which, when joinedlogically together, comprise the module and achieve the stated purposefor the module.

Indeed, a module of executable code could be a single instruction, ormany instructions, and may even be distributed over several differentcode segments, among different programs, and across several memorydevices. Similarly, operational data may be identified and illustratedherein within modules, and may be embodied in any suitable form andorganized within any suitable type of data structure. The operationaldata may be collected as a single data set, or may be distributed overdifferent locations including over different storage devices, and mayexist, at least partially, merely as electronic signals on a system ornetwork.

While the invention herein disclosed has been described by means ofspecific embodiments, examples and applications thereof, numerousmodifications and variations could be made thereto by those skilled inthe art without departing from the scope of the invention set forth inthe claims.

What is claimed is:
 1. A method for transition between at least twomedia streams, comprising: transmitting by a streaming media receiver ofa first content request to a content provider, requesting a first mediastream, the streaming media receiver comprising a stream managementmodule, a memory, a decoder module and a display module; receiving bythe streaming media receiver of an XML file, the XML file comprising XMLand including a first location for the first media stream, at least oneauxiliary location for at least one auxiliary media stream, at least onetimecode for determining a start display time for the at least oneauxiliary media stream, and a memory allocation datum indicating aquantity of memory; receiving of the first media stream by the streamingmedia; storing of the first media stream in the memory; buffering,decoding, and displaying of the first media stream by the streamingmedia receiver; repetitively determining by the stream management moduleof an available memory quantity equal to a quantity of the memory notused for storing the first media stream, after the first media streamhas been entirely stored in the memory; repetitively comparing thememory allocation datum to the available memory quantity; receiving ofthe at least one auxiliary media stream by the streaming media receiverwhen the available memory quantity is equal to or greater than thememory allocation datum; storing of the at least one auxiliary mediastream in the memory; and decoding and displaying of the at least oneauxiliary media stream when the at least one timecode is reached.
 2. Themethod for transition between the at least two media streams accordingto claim 1, wherein the media streams comprise MPEG-4 media streams. 3.A method for transition between at least two media streams, comprising:receiving of a first streaming media content request by a contentprovider, requesting a first media stream, the content providerincluding at least one module configured for receiving and processingthe first streaming media content request; transmitting by the contentprovider of an XML file to a streaming media receiver, the XML filecomprising XML, including a first location for the first media stream,at least one auxiliary location for at least one auxiliary media stream,at least one timecode for determining a start display time for the atleast one auxiliary media stream, and a memory allocation datumindicating a quantity of memory, wherein the memory allocation datum isused to determine a download start time of the auxiliary media stream.4. The method for transition between the at least two media streamsaccording to claim 3, further comprising: receiving of a first mediastream request at the first location of the first media stream; andtransmitting the first media stream to the streaming media receiver. 5.The method for transition between the at least two media streamsaccording to claim 4, wherein the first media stream comprises an MPEG-4media stream.
 6. The method for transition between the at least twomedia streams according to claim 4, further comprising: receiving of anauxiliary media stream request at the at least one auxiliary locationfor the at least one auxiliary media stream; and transmitting the atleast one auxiliary media stream to the streaming media receiver.
 7. Themethod for transition between the at least two media streams accordingto claim 6, wherein the media streams comprise MPEG-4 media streams. 8.A system for transition between at least two media streams, comprising:a first media stream; at least one auxiliary media stream; a streamingmedia receiver, the streaming media receiver comprising a streammanagement module, a memory, a decoder module, and a display module,whereby the streaming media receiver receives, stores, decodes anddisplays the first media stream and the at least one auxiliary mediastream; and an XML file comprising XML, whereby the XML file includes afirst location of the first media stream, a second location of the atleast one auxiliary media stream, at least one timecode for a displaystart time of the at least one auxiliary media stream, and a memoryallocation datum indicating a quantity of memory, wherein the memoryallocation datum is used to determine a download start time of theauxiliary media stream.
 9. The system for transition between the atleast two media streams according to claim 8, wherein the media streamscomprise MPEG-4 media streams.
 10. The system for transition between theat least two media streams according to claim 8, wherein the streammanagement module is configured for repetitively determining of anavailable memory quantity equal to a quantity of the memory not used forstoring the first media stream, after the first media stream has beenentirely stored in the memory.
 11. The system for transition between theat least two media streams according to claim 10, wherein the mediastreams comprise MPEG-4 media streams.
 12. The system for transitionbetween the at least two media streams according to claim 10, whereinthe stream management module is configured for comparing the memoryallocation datum to the available memory quantity and receiving of theat least one auxiliary media stream by the streaming media receiver whenthe available memory quantity is equal to or greater than the memoryallocation datum.
 13. The system for transition between the at least twomedia streams according to claim 12, wherein the media streams compriseMPEG-4 media streams.
 14. A method for making a system for transitionbetween at least two media streams, comprising: providing a first mediastream at a first location; providing at least one auxiliary mediastream at an auxiliary location; providing a content provider configuredto transmit an XML file; providing a streaming media receiver, thestreaming media receiver comprising a stream management module, amemory, a decoder module, and a display module, whereby the streamingmedia receiver receives, stores, decodes and displays the first mediastream and the at least one auxiliary media stream; and providing theXML file comprising XML, whereby the XML file includes the firstlocation of the first media stream, the auxiliary location of the atleast one auxiliary media stream, at least one timecode for a displaystart time of the at least one auxiliary media stream, and a memoryallocation datum indicating a quantity of memory, wherein the memoryallocation datum is used to determine a download start time of theauxiliary media stream.
 15. The method for making the system fortransition between the at least two media streams according to claim 14,wherein the media streams comprise MPEG-4 media streams.
 16. The methodfor making the system for transition between the at least two mediastreams according to claim 14, wherein the stream management module isconfigured for repetitively determining of an available memory quantityequal to a quantity of the memory not used for storing the first mediastream, after the first media stream has been entirely stored in thememory.
 17. The method for making the system for transition between theat least two media streams according to claim 16, wherein the mediastreams comprise MPEG-4 media streams.
 18. The method for making thesystem for transition between the at least two media streams accordingto claim 16, wherein the stream management module is configured forcomparing the memory allocation datum to the available memory quantityand receiving of the at least one auxiliary media stream by thestreaming media receiver when the available memory quantity is equal toor greater than the memory allocation datum.
 19. The method for makingthe system for transition between the at least two media streamsaccording to claim 18, wherein the media streams comprise MPEG-4 mediastreams.